#ifndef MDFU_ERRORS_H
#define MDFU_ERRORS_H

#include <stdexcept>
#include <string>

// 定义一个命名空间以包装所有与 MDFU 相关的错误类
// TODO 错误类的统一定义，需要进行修改和整理
namespace MdfuErrors
{

    // 基类错误，继承自 std::runtime_error
    class BaseError : public std::runtime_error
    {
    public:
        explicit BaseError(const std::string &msg) : std::runtime_error(msg) {}
    };

    // 通信错误
    class CommunicationError : public BaseError
    {
    public:
        explicit CommunicationError(const std::string &msg) : BaseError(msg) {}
    };

    // 传输错误
    class TransportError : public BaseError
    {
    public:
        explicit TransportError(const std::string &msg) : BaseError(msg) {}
    };

    // 传输错误
    class ValueError : public BaseError
    {
    public:
        explicit ValueError(const std::string &msg) : BaseError(msg) {}
    };

} // namespace MdfuErrors

#endif // MDFU_ERRORS_H
